home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Visual Cafe 3
/
Visual Cafe 3.ISO
/
Vcafe
/
Sample.bin
/
JavaPad.java
< prev
next >
Wrap
Text File
|
1998-11-05
|
16KB
|
585 lines
/*
This simple extension of the java.awt.Frame class
contains all the elements necessary to act as the
main window of an application.
*/
import java.awt.*;
import java.io.*;
import java.util.*;
import java.awt.event.*;
public class JavaPad extends Frame
{
public JavaPad() {
Properties prop = new Properties(System.getProperties());
m_fileSeparator = prop.getProperty("file.separator");
//{{INIT_CONTROLS
setLayout(new GridLayout(0,1,0,0));
setVisible(false);
setSize(400,300);
saveFileDialog1 = new java.awt.FileDialog(this);
saveFileDialog1.setMode(FileDialog.SAVE);
saveFileDialog1.setTitle("Save");
openFileDialog1 = new java.awt.FileDialog(this);
openFileDialog1.setMode(FileDialog.LOAD);
openFileDialog1.setTitle("Open");
textArea1 = new java.awt.TextArea();
textArea1.setBounds(0,0,400,300);
add(textArea1);
setTitle("JavaPad - Untitled");
//}}
m_findReplace = new FindReplace("",textArea1);
//{{INIT_MENUS
menu1.setLabel("File");
mainMenuBar = new java.awt.MenuBar();
menu1 = new java.awt.Menu("File");
miNew = new java.awt.MenuItem("New");
menu1.add(miNew);
miNew.setLabel("New");
miOpen = new java.awt.MenuItem("Open...");
menu1.add(miOpen);
miOpen.setLabel("Open...");
miSave = new java.awt.MenuItem("Save");
menu1.add(miSave);
miSave.setLabel("Save");
miSaveAs = new java.awt.MenuItem("Save As...");
menu1.add(miSaveAs);
miSaveAs.setLabel("Save As...");
menu1.addSeparator();
miExit = new java.awt.MenuItem("Exit");
menu1.add(miExit);
miExit.setLabel("Exit");
mainMenuBar.add(menu1);
menu2.setLabel("Edit");
menu2 = new java.awt.Menu("Edit");
miCut = new java.awt.MenuItem("Cut");
menu2.add(miCut);
miCut.setLabel("Cut");
miCopy = new java.awt.MenuItem("Copy");
menu2.add(miCopy);
miCopy.setLabel("Copy");
miPaste = new java.awt.MenuItem("Paste");
menu2.add(miPaste);
miPaste.setLabel("Paste");
menu2.addSeparator();
miSelectAll = new java.awt.MenuItem("Select All");
menu2.add(miSelectAll);
miSelectAll.setLabel("Select All");
mainMenuBar.add(menu2);
menu4.setLabel("Search");
menu4 = new java.awt.Menu("Search");
miFind = new java.awt.MenuItem("Find ...");
menu4.add(miFind);
miFind.setLabel("Find ...");
miFindAgain = new java.awt.MenuItem("Find Again");
menu4.add(miFindAgain);
miFindAgain.setLabel("Find Again");
miReplace = new java.awt.MenuItem("Replace ...");
menu4.add(miReplace);
miReplace.setLabel("Replace ...");
mainMenuBar.add(menu4);
menu3.setLabel("Help");
menu3 = new java.awt.Menu("Help");
mainMenuBar.setHelpMenu(menu3);
miAbout = new java.awt.MenuItem("About");
menu3.add(miAbout);
miAbout.setLabel("About");
mainMenuBar.add(menu3);
setMenuBar(mainMenuBar);
//}}
//{{REGISTER_LISTENERS
SymKey lSymKey = new SymKey();
textArea1.addKeyListener(lSymKey);
SymAction lSymAction = new SymAction();
miAbout.addActionListener(lSymAction);
miExit.addActionListener(lSymAction);
miReplace.addActionListener(lSymAction);
miSelectAll.addActionListener(lSymAction);
miPaste.addActionListener(lSymAction);
miCopy.addActionListener(lSymAction);
miCut.addActionListener(lSymAction);
miSaveAs.addActionListener(lSymAction);
miNew.addActionListener(lSymAction);
miSave.addActionListener(lSymAction);
miOpen.addActionListener(lSymAction);
miFind.addActionListener(lSymAction);
miFindAgain.addActionListener(lSymAction);
SymWindow aSymWindow = new SymWindow();
this.addWindowListener(aSymWindow);
//}}
}
public JavaPad(String title) {
this();
setTitle(title);
}
static public void main(String args[]) {
(new JavaPad()).show();
}
String m_fileSeparator;
String m_dirName;
String m_fileName;
String m_Clipboard;
//{{DECLARE_CONTROLS
java.awt.FileDialog saveFileDialog1 = new java.awt.FileDialog(this);
java.awt.FileDialog openFileDialog1 = new java.awt.FileDialog(this);
java.awt.TextArea textArea1 = new java.awt.TextArea();
//}}
FindDialog m_findDialog;
ReplaceDialog m_replaceDialog;
//{{DECLARE_MENUS
java.awt.MenuBar mainMenuBar = new java.awt.MenuBar();
java.awt.Menu menu1 = new java.awt.Menu();
java.awt.MenuItem miNew = new java.awt.MenuItem();
java.awt.MenuItem miOpen = new java.awt.MenuItem();
java.awt.MenuItem miSave = new java.awt.MenuItem();
java.awt.MenuItem miSaveAs = new java.awt.MenuItem();
java.awt.MenuItem miExit = new java.awt.MenuItem();
java.awt.Menu menu2 = new java.awt.Menu();
java.awt.MenuItem miCut = new java.awt.MenuItem();
java.awt.MenuItem miCopy = new java.awt.MenuItem();
java.awt.MenuItem miPaste = new java.awt.MenuItem();
java.awt.MenuItem miSelectAll = new java.awt.MenuItem();
java.awt.Menu menu4 = new java.awt.Menu();
java.awt.MenuItem miFind = new java.awt.MenuItem();
java.awt.MenuItem miFindAgain = new java.awt.MenuItem();
java.awt.MenuItem miReplace = new java.awt.MenuItem();
java.awt.Menu menu3 = new java.awt.Menu();
java.awt.MenuItem miAbout = new java.awt.MenuItem();
//}}
FindReplace m_findReplace;
void selectAll() {
textArea1.select(0, textArea1.getText().length());
}
void paste() {
textArea1. replaceRange(m_Clipboard, textArea1.getSelectionStart(), textArea1.getSelectionEnd());
}
void copy() {
m_Clipboard = textArea1.getSelectedText();
}
void cut() {
m_Clipboard = textArea1.getSelectedText();
textArea1. replaceRange("", textArea1.getSelectionStart(), textArea1.getSelectionEnd());
}
void saveAs() {
saveFileDialog1.show();
m_fileName = saveFileDialog1.getFile();
m_dirName = saveFileDialog1.getDirectory();
if (m_fileName!=null)
{
try {
FileOutputStream foS = new FileOutputStream( m_dirName + m_fileSeparator + m_fileName );
String text = textArea1.getText();
byte[] byteBuffer = text.getBytes();
foS.write(byteBuffer);
foS.close();
}
catch (IOException e)
{
System.out.print("Error reading file");
}
}
setTitle("JavaPad - " + m_fileName);
}
void newAction() {
m_fileName = "Untitled";
textArea1.setText("");
setTitle("JavaPad - " + m_fileName);
}
void save() {
if (m_fileName == "Untitled")
{
// Create a new file and then save it's contents.
saveFileDialog1.show();
m_fileName = saveFileDialog1.getFile();
m_dirName = saveFileDialog1.getDirectory();
}
if (m_fileName!=null)
{
try {
FileOutputStream foS = new FileOutputStream( m_dirName + m_fileSeparator + m_fileName );
String text = textArea1.getText();
byte[] byteBuffer = text.getBytes();
foS.write(byteBuffer);
foS.close();
}
catch (IOException e)
{
System.out.print("Error reading file");
}
}
}
void open() {
openFileDialog1.setVisible(true);
m_fileName = openFileDialog1.getFile();
m_dirName = openFileDialog1.getDirectory();
if (openFileDialog1.getFile()!=null)
{
try {
BufferedReader fiS = new BufferedReader(new FileReader( m_dirName + m_fileSeparator + m_fileName ));
textArea1.setText("");
String s = new String("");
while ((s = fiS.readLine()) != null)
{
textArea1.append(s + "\n");
}
textArea1.select(0,0);
setTitle("JavaPad - " + m_fileName);
fiS.close();
}
catch (IOException e)
{
System.out.print("Error reading file");
}
}
//}}
}
public void CleanupAndClose()
{
this.setVisible(false); // hide the Frame
dispose(); // free the system resources
System.exit(0); // close the application
}
void find()
{
int select_start;
int select_end;
int select_diff;
int start_index;
String select_body;
//automatically put in selection in FindDialog field
select_start = textArea1.getSelectionStart();
select_end = textArea1.getSelectionEnd();
select_diff = select_end - select_start;
//set find field if selected text not too big
if(select_diff > 0 && select_diff < 20) {
m_findReplace.setFind(textArea1.getSelectedText());
start_index = textArea1.getSelectionStart() + select_diff;
m_findReplace.setIndex(start_index);
}
else {
m_findReplace.setFind("");
m_findReplace.setIndex(textArea1.getSelectionStart());
}
m_findReplace.setOccur(0);
(new FindDialog(this, "Find", true, m_findReplace)).show();
}
void findAgain()
{
FindReplaceEngine fre;
fre = new FindReplaceEngine(m_findReplace);
fre.FindIt();
if(!m_findReplace.isFoundIt()) this.getToolkit().beep();
}
class SymKey extends java.awt.event.KeyAdapter
{
public void keyPressed(java.awt.event.KeyEvent event)
{
Object object = event.getSource();
if (object == textArea1)
textArea1_KeyPress(event);
}
}
void textArea1_KeyPress(java.awt.event.KeyEvent event)
{
int keypressed;
keypressed = event.getKeyCode();
//114 is F3 on my keyboard, although java.awt.Event.F3 is 1010
if(keypressed == 114) { miFindAgain_ActionPerformed(new ActionEvent(this,0,"")); }
}
class SymAction implements java.awt.event.ActionListener
{
public void actionPerformed(java.awt.event.ActionEvent event)
{
Object object = event.getSource();
if (object == miAbout)
miAbout_ActionPerformed(event);
else if (object == miExit)
miExit_ActionPerformed(event);
else if (object == miReplace)
miReplace_ActionPerformed(event);
else if (object == miSelectAll)
miSelectAll_ActionPerformed(event);
else if (object == miPaste)
miPaste_ActionPerformed(event);
else if (object == miCopy)
miCopy_ActionPerformed(event);
else if (object == miCut)
miCut_ActionPerformed(event);
else if (object == miSaveAs)
miSaveAs_ActionPerformed(event);
else if (object == miNew)
miNew_ActionPerformed(event);
else if (object == miSave)
miSave_ActionPerformed(event);
else if (object == miOpen)
miOpen_ActionPerformed(event);
else if (object == miFind)
miFind_ActionPerformed(event);
else if (object == miFindAgain)
miFindAgain_ActionPerformed(event);
}
}
void miAbout_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miAbout_ActionPerformed_Interaction1(event);
}
void miAbout_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
// AboutDialog Create and show as modal
(new AboutDialog(this, true)).setVisible(true);
} catch (Exception e) {
}
}
void miExit_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miExit_ActionPerformed_Interaction1(event);
}
void miExit_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
// QuitDialog Create and show as modal
(new QuitDialog(this, true)).setVisible(true);
} catch (Exception e) {
}
}
void miReplace_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miReplace_ActionPerformed_Interaction1(event);
}
void miReplace_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
// ReplaceDialog Create and show as modal
(new ReplaceDialog(this, true)).setVisible(true);
} catch (Exception e) {
}
}
void miSelectAll_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miSelectAll_ActionPerformed_Interaction1(event);
}
void miSelectAll_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.selectAll();
} catch (Exception e) {
}
}
void miPaste_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miPaste_ActionPerformed_Interaction1(event);
}
void miPaste_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.paste();
} catch (Exception e) {
}
}
void miCopy_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miCopy_ActionPerformed_Interaction1(event);
}
void miCopy_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.copy();
} catch (Exception e) {
}
}
void miCut_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miCut_ActionPerformed_Interaction1(event);
}
void miCut_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.cut();
} catch (Exception e) {
}
}
void miSaveAs_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miSaveAs_ActionPerformed_Interaction1(event);
}
void miSaveAs_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.saveAs();
} catch (Exception e) {
}
}
void miNew_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miNew_ActionPerformed_Interaction1(event);
}
void miNew_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.newAction();
} catch (Exception e) {
}
}
void miSave_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miSave_ActionPerformed_Interaction1(event);
}
void miSave_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.save();
} catch (Exception e) {
}
}
void miOpen_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miOpen_ActionPerformed_Interaction1(event);
}
void miOpen_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.open();
} catch (Exception e) {
}
}
void miFind_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miFind_ActionPerformed_Interaction1(event);
}
void miFind_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.find();
} catch (Exception e) {
}
}
void miFindAgain_ActionPerformed(java.awt.event.ActionEvent event)
{
// to do: code goes here.
miFindAgain_ActionPerformed_Interaction1(event);
}
void miFindAgain_ActionPerformed_Interaction1(java.awt.event.ActionEvent event)
{
try {
this.findAgain();
} catch (Exception e) {
}
}
class SymWindow extends java.awt.event.WindowAdapter
{
public void windowClosing(java.awt.event.WindowEvent event)
{
Object object = event.getSource();
if (object == JavaPad.this)
JavaPad_WindowClosing(event);
}
}
void JavaPad_WindowClosing(java.awt.event.WindowEvent event)
{
// to do: code goes here.
JavaPad_WindowClosing_Interaction1(event);
}
void JavaPad_WindowClosing_Interaction1(java.awt.event.WindowEvent event)
{
try {
this.dispose();
} catch (Exception e) {
}
}
}